/*************************************************************************
 *                                                                       *
 * This file is part of the FreeMAPs distribution.  For full copyright   *
 * information, see COPYRIGHT and COPYING.LESSER.                        *
 *                                                                       *
 * Author:           sqbang                                              *
 * Email:            sqbang@ustc.edu                                     *
 * Date:             2013.09.27                                          *
 *                                                                       *
 *************************************************************************/

#ifndef FreeMAPs_include_COMMON_enum_MeshType_h
#define FreeMAPs_include_COMMON_enum_MeshType_h

#include "FreeMAPsConfig.h"

namespace FreeMAPs
{

/**
 * @brief MeshType tells the mesh that the program used.
 *
 * the discrete of equation will based on mesh, whatever use FDM or FEM.
 * now automatical refinement structured and unstructured mesh are supported.
 * the coupled mesh will supported in future.
 *
 * @note do not make confuse with MeshPackage and MeshFileFormat.
 * MeshPackage tells the bottom library that used to supported this type of mesh.
 * for example, one can use SAMRAI to support the structured mesh
 * and use libMesh to support the unstructured mesh.
 *
 * MeshFileFormat tells what mesh format generated by a mesh generator.
 *
 * @see MeshPackage
 * @see MeshFileFormat
 */
enum class MeshType
{
    STRUCTURED_MESH = 0,
    UNSTRUCTURED_MESH,
    HYBRID_MESH,
    MESHLESS,

    INVALID_VALUE
};

}

#include "COMMON/enum/MeshType.inl"

#endif
